package com.platform.utils.sms;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * @Description: java类作用描述
 * @Author: jf2
 * @CreateDate: 2018/5/25 0025 14:19
 * @Version: 1.0
 * Copyright: Copyright (c) 2018
 **/
public class SmsKingtooTool {
    private static SmsKingtooTool smsClientToolInstance;
    /**
     * 采用单列方式来访问操作
     *
     * @return
     */
    public static synchronized SmsKingtooTool getInstance() {
        if (smsClientToolInstance == null) {
            smsClientToolInstance = new SmsKingtooTool();
        }
        return smsClientToolInstance;
    }
    /**
     *
     * POST方法
     *
     *
     * @param sendUrl
     * ：访问URL
     * @param sendParam
     * ：参数串
     * @param backEncodType
     * ：返回的编码
     * @return
     */
    public String doAccessHTTPPost(String sendUrl, String sendParam,
                                   String backEncodType) {
        StringBuffer receive = new StringBuffer();
        BufferedWriter wr = null;
        try {
            if (backEncodType == null || backEncodType.equals("")) {
                backEncodType = "UTF-8";
            }
            URL url = new URL(sendUrl);
            HttpURLConnection URLConn = (HttpURLConnection) url
                    .openConnection();
            URLConn.setDoOutput(true);
            URLConn.setDoInput(true);
            ((HttpURLConnection) URLConn).setRequestMethod("POST");
            URLConn.setUseCaches(false);
            URLConn.setAllowUserInteraction(true);
            HttpURLConnection.setFollowRedirects(true);
            URLConn.setInstanceFollowRedirects(true);
            URLConn.setRequestProperty("Content-Type",
                    "application/x-www-form-urlencoded;charset=UTF-8");
            URLConn.setRequestProperty("Content-Length", String
                    .valueOf(sendParam.getBytes().length));
            DataOutputStream dos = new DataOutputStream(URLConn
                    .getOutputStream());
            dos.writeBytes(sendParam);
            BufferedReader rd = new BufferedReader(new InputStreamReader(
                    URLConn.getInputStream(), backEncodType));
            String line;
            while ((line = rd.readLine()) != null) {
                receive.append(line).append("\r\n");
            }
            rd.close();
        } catch (java.io.IOException e) {
            receive.append("访问产生了异常-->").append(e.getMessage());
            e.printStackTrace();
        } finally {
            if (wr != null) {
                try {
                    wr.close();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
                wr = null;
            }
        }
        return receive.toString();
    }
    public String doAccessHTTPGet(String sendUrl, String backEncodType) {
        StringBuffer receive = new StringBuffer();
        BufferedReader in = null;
        try {
            if (backEncodType == null || backEncodType.equals("")) {
                backEncodType = "UTF-8";
            }
            URL url = new URL(sendUrl);
            HttpURLConnection URLConn = (HttpURLConnection) url
                    .openConnection();
            URLConn.setDoInput(true);
            URLConn.setDoOutput(true);
            URLConn.connect();
            URLConn.getOutputStream().flush();
            in = new BufferedReader(new InputStreamReader(URLConn
                    .getInputStream(), backEncodType));
            String line;
            while ((line = in.readLine()) != null) {
                receive.append(line).append("\r\n");
            }
        } catch (IOException e) {
            receive.append("访问产生了异常-->").append(e.getMessage());
            e.printStackTrace();
        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (java.io.IOException ex) {
                    ex.printStackTrace();
                }
                in = null;
            }
        }
        return receive.toString();
    }
}